1
Progettare per la flessibilità: L'interfaccia Tabella
AI020Lesson 4
00:00

La base di un sistema flessibile risiede nella definizione di un interno rigido contratto o interfaccia che gli oggetti devono seguire. In questo contesto, definiamo una interfaccia Tabella dove ogni oggetto cella garantisce l'esistenza di tre metodi specifici: minLarghezza(), , minAltezza(), e disegna(larghezza, altezza).

1. Il contratto dell'interfaccia

Standardizzando su questi metodi, la logica di disposizione può calcolare le dimensioni globali delle righe e colonne senza conoscere i tipi di dati interni delle singole celle. Questo è un classico esempio di polimorfismo basato sull'interfaccia.

2. Implementazione di TestoCella

Il TestoCella il costruttore prepara l'input grezzo suddividendo le stringhe in array riga per riga. Questo sposta la complessità dalla fase di rendering a quella di istanziazione.

this.testo = testo.split("\n");

3. Disegno deterministico

Il disegna(larghezza, altezza) metodo garantisce che ogni uscita della cella sia perfettamente riempita utilizzando un ripeti() funzione ausiliaria. Questo mantiene allineamento verticale e orizzontale indipendentemente dalla lunghezza del contenuto.

nomeKilimangiaroaltezza5895Le colonne si allineano tramite il calcolo di minLarghezza()

$$\text{Spaziatura} = \text{Larghezza} - \text{lunghezza.riga}$$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>